<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 'on');
       
/**
 * Description of ClienteController
 *
 * @author Cesar
 */
class Clientes_ClienteController extends Zend_Controller_Action{
    private $clienteDao;
    private $usuarioDao;
    private $referenciaDao;
    private $ingresoDao;
    private $tipoSesionDao;
    private $tipoDocumentoDao;
    private $sesionDao;
    private $menu = 1;


    public function init() {
        $auht = Zend_Auth::getInstance();
        
        if ($auht->hasIdentity()){
            $this->view->usuarioSesion = $auht->getIdentity();
            //var_dump($auht->getIdentity()->id);
        } else {
            return $this->_redirect("/default/index/login/");
        }
            
        $this->clienteDao = new Doctrine_Model_ClienteDao();
        $this->usuarioDao = new Doctrine_Model_UsuarioDao();
        $this->referenciaDao = new Doctrine_Model_ReferenciasDoctrineDao();
        $this->ingresoDao = new Doctrine_Model_IngresoDao();
        $this->tipoSesionDao = new Doctrine_Model_TipoSesionDao();
        $this->tipoDocumentoDao = new Doctrine_Model_TipoDocumentoDao();
        $this->sesionDao = new Doctrine_Model_SesionesDao();
        
        $this->view->usuario = $this->usuarioDao->obtenerPorId($auht->getIdentity()->id); 
        
    }
    
    public function indexAction() {
        
        $this->_helper->redirector('index','index', 'default' );
    }
    
    public function registrarAction(){
        $this->view->tiposDocumento = $this->tipoDocumentoDao->obtenerTodos();
        $this->view->tiposSesiones = $this->tipoSesionDao->obtenerTodos();
         
        //$this->_helper->redirector->gotoRoute(array('controller'=> 'cliente','action' =>'tomarSesion'));
        //$this->_redirect($this->baseUrl('clientes/busqueda_1.phtml'));
        
        
            $datos = $this->getRequest()->getParams();
            
            $tomarBorrar = $this->getRequest()->getParam("tomar_borrar", null);
            $sesionVencida = $this->getRequest()->getParam("sesion_vencida", null);
            

            //var_dump($datos);//exit;
            $accion = $this->getRequest()->getParam("accion", "default");
            $primerSesion = $this->getRequest()->getParam("nuevo", null);
            if($tomarBorrar){
                $accion = $datos['tomar_borrar'];
            } elseif ($sesionVencida) {
                $accion = $datos['sesion_vencida'];
            }
            //echo $primerSesion.'echo de primersesion';exit;
            $cliente = new Doctrine_Model_Entities_Cliente();
            $ingreso = new Doctrine_Model_Entities_Ingreso();
            $sesion = new Doctrine_Model_Entities_Sesiones();
            //echo 'accion'.$accion;exit;
            switch ($accion) {
                case 'editaringreso':
                    /************Datos del ingreso***********/
                    $ingreso = $this->ingresoDao->obtenerPorId($datos['ingreso_id']);
                    $cliente = $this->clienteDao->obtenerPorId($datos['cliente_id']);
                    
                    
                    $ingreso->setCantidad($datos['cant_sesion']);
                    $ingreso->setCliente($cliente);
                    $fechaIngreso = DateTime::createFromFormat('d/m/Y', $datos['fecha_ingreso']);
                    $ingreso->setFechaCarga($fechaIngreso);
                    $ingreso->setMonto($datos['text_monto']);
                    
                    $tipoSesion = $this->tipoSesionDao->obtenerPorId($datos['tipo_sesion']);
                    $ingreso->setTipoSesion($tipoSesion);
                    
                    $usuario = new Doctrine_Model_Entities_Usuario();
                    $usuario = $this->usuarioDao->obtenerPorId(1);  
                    $ingreso->setUsuario($usuario);
                    $ingreso->setActivo(1);
                    //echo count($ingreso->getSesiones()).'cantidad de sesiones';exit;
                    foreach ($ingreso->getSesiones() as $sesion) {
                        $montoSesion = $ingreso->getMonto()/$ingreso->getCantidad();
                        $sesion->setTasa($montoSesion);
                        $this->sesionDao->guardar($sesion);
                    }
                    
                    
                    if($this->ingresoDao->guardar($ingreso)){
                        return $this->_helper->redirector('veringresoscliente','cliente', 'clientes', array("cliente_id" => $cliente->getId()) );
                    }
                    //var_dump($ingreso);exit;
                    break;
                case 'Guardar':
                    /*****************verificar que el cliente no exista*****************/
                    $clienteNuevo = $this->clienteDao->obtenerPorNumeroyTipoDeDocumento($datos['txt_dni'], $datos['tipo_documento']);
                    
					$fechaSesion = DateTime::createFromFormat('d/m/Y', $datos['fecha_sesion']);
                    
					if (!count($clienteNuevo)){    
                        $clienteNuevo = new Doctrine_Model_Entities_Cliente();
						$clienteNuevo->setFechaPrimerIngreso($fechaSesion);
						$clienteNuevo->setFechaUltimoIngreso($fechaSesion);
                    } else {
                        $clienteNuevo = $clienteNuevo[0];
						$clienteNuevo->setFechaUltimoIngreso($fechaSesion);
                    }
                    if(empty($datos['from_buscar'])){
                        /*************Datos del cliente***************/
                        $clienteNuevo->setApellido($datos['text_apellido']);
                        $clienteNuevo->setNombre($datos['text_nombre']);
                        $clienteNuevo->setNroDocumento($datos['txt_dni']);

                        $tipoDoc =  $this->referenciaDao->obtenerPorId("Doctrine_Model_Entities_TipoDocumento", 1);
                        $clienteNuevo->setTipoDocumento($tipoDoc);

                        $clienteNuevo->setSexo($datos['sexo']);

                        $usuario = new Doctrine_Model_Entities_Usuario();
                        $usuario = $this->usuarioDao->obtenerPorId(1);  
                        $clienteNuevo->setUsuario($usuario);

                        $clienteNuevo->setMail($datos['text_mail']);
                        $clienteNuevo->setTelefonoFijo($datos['text_telefono']);
                        $clienteNuevo->setCelular($datos['text_celular']);
                        $clienteNuevo->setZona($datos['zona']);

                        if($datos['fecha_nacimiento'] != ''){
                            $fechaNacimiento = DateTime::createFromFormat('d/m/Y', $datos['fecha_nacimiento']);
                            //var_dump($fechaNacimiento);
                            $clienteNuevo->setFechaNacimiento($fechaNacimiento);
                        }
                    } elseif ($datos['from_buscar'] == 'FromBuscar') {
                        $usuario = new Doctrine_Model_Entities_Usuario();
                        $usuario = $this->usuarioDao->obtenerPorId(1);  
                        $clienteNuevo->setUsuario($usuario);
                    }               
                    
                    /************Datos del ingreso***********/
                    $fechaIngreso = DateTime::createFromFormat('d/m/Y', $datos['fecha_sesion']);
                    
                    $ingreso->setCantidad($datos['cant_sesion']);
                    $ingreso->setCliente($clienteNuevo);
                    $ingreso->setFechaCarga($fechaIngreso);
                    $ingreso->setMonto($datos['text_monto']);
                    $ingreso->setDif_monto(0);
                    
                    $tipoSesion = $this->tipoSesionDao->obtenerPorId($datos['tipo_sesion']);
                    $ingreso->setTipoSesion($tipoSesion);
                    
                    $ingreso->setUsuario($usuario);
                    $ingreso->setActivo(1);
                    
                    $clienteNuevo->agregarIngreso($ingreso);
                   
                    //var_dump($clienteNuevo);exit;
                    if ($this->clienteDao->guardar($clienteNuevo)) {
                        $activosAux = $clienteNuevo->getIngresosActivos();
                        $activos = array();
                        foreach ($activosAux as $activo) {
                            if (count($activo->getSesiones()) + 1 == 1) {
                                $activos[] = $activo;
                            }
                        }
                        $this->view->activos = $activos;
                        
                        $this->view->cliente = $clienteNuevo;
                        if ($datos['from_buscar'] == 'FromBuscar') {
                            return $this->_helper->redirector('veringresoscliente','cliente', 'clientes', array("cliente_id" => $clienteNuevo->getId()) );
                        }
                    //return $this->_helper->redirector('tomarsesion','cliente', 'clientes', array("ingreso" => $ingreso->getId()) );
                    } else {
                        echo 'no exito';
                    }
                break;
                case 'Buscar':
                    if ($datos['txt_dni'] != '') {
                        $cliente = $this->clienteDao->obtenerPorNumeroyTipoDeDocumento($datos['txt_dni'], 1);
                        if (count($cliente)) {
                            $cliente = $cliente[0];
                            /*******Busco ingresos activos que no tengan sesiones cargadas******/
                            $activosAux = $cliente->getIngresosActivos();
                            $activos = array();
                            foreach ($activosAux as $activo) {
                                if (count($activo->getSesiones()) + 1 == 1) {
                                    $activos[] = $activo;
                                }
                            }
                            
                            $this->view->cliente = $cliente;
                            $this->view->activos = $activos;
                            
                            //$this->view->historicos = $cliente->getIngresosHistoricos();
                            //$this->view->activos = $cliente->getIngresosActivos();
                        } else {
                            $cliente = new Doctrine_Model_Entities_Cliente();
                        }
                    }
                    $this->view->cliente = $cliente;
                break;
                case 'tomarsesion':
                        
                    //var_dump($datos);//exit;
                        $editarSesionBool = 0;
                        $cliente = $this->clienteDao->obtenerPorId($datos['cliente_id']);
                        $ingreso = $cliente->getIngresoPorId($datos['ingreso_id']);
                        
                        if($datos['editarsesion'] == 'editarSesion'){
                            $ingreso = $cliente->getIngresoPorId($datos['ingreso_id']);
                            //var_dump($ingreso);
                            //var_dump($ingreso->getSesiones());
                            //$sesion =  $ingreso->getSesionPorId($datos['sesion_id']);
                            $sesion = new Doctrine_Model_Entities_Sesiones();
                            //var_dump($sesion).'hola trolo';exit;
                            if($datos['text_dif_monto']  || $datos['text_dif_monto'] == 0){
                                //$monto = $datos['text_dif_monto'] + $ingreso->getMonto();
                                //
                                //echo $montoIndivudualxSesion.'hola dos';exit;
                                //$cliente->getIngresoPorId($datos['ingreso_id'])->setMonto($monto);
                                //$sesion->setIngreso($ingreso);
                                $ingreso->setDif_monto($datos['text_dif_monto']);
                                
                                $montoIndivudualxSesion = $ingreso->getMonto() / $ingreso->getCantidad();
                                $sesion->setTasa($montoIndivudualxSesion);
                                $sesion->setDif_monto($datos['text_dif_monto']);
                                
                                
                                $fechaSesion = DateTime::createFromFormat('d/m/Y', $datos['fecha_sesion']);;
                                $sesion->setFechaSesion($fechaSesion);
                                
                                $sesion->setIngreso($cliente->getIngresoPorId($datos['ingreso_id']));
                                $sesion->setCliente($cliente);
                                
                                $sesion->setActivo(1);
                                /**********Usuario Activo************/
                                //$usuario = new Doctrine_Model_Entities_Usuario();
                                $usuario = $this->usuarioDao->obtenerPorId(1); 
                                $sesion->setUsuario($usuario);
                                //echo $sesion->getTasa().'tasa trola';
                                //var_dump($sesion);exit;
                            }
                            $editarSesionBool = 1;
                        } else {
                            /****************Datos de las sesiones************************/
                            $montoIndivudualxSesion = $ingreso->getMonto() / $ingreso->getCantidad();
                            $sesion->setIngreso($cliente->getIngresoPorId($datos['ingreso_id']));
                            $sesion->setCliente($cliente);
                            $sesion->setTasa($montoIndivudualxSesion);
                            $sesion->setActivo(1);
                            $sesion->setDif_monto(0);
                            
                            /********Fecha actual**********/
                            $fechaSesion = new DateTime();
                            $sesion->setFechaSesion($fechaSesion);
                            /**********Usuario Activo************/
                            $usuario = new Doctrine_Model_Entities_Usuario();
                            $usuario = $this->usuarioDao->obtenerPorId(1); 
                            $sesion->setUsuario($usuario);
                        }
                        
                        

                        $tipoSesion_id = $this->getRequest()->getParam("tipo_sesion", null);
                        if(!empty($tipoSesion_id)){
                            $tipoSesion = $this->tipoSesionDao->obtenerPorId($tipoSesion_id);
                            $sesion->setTipoSesion($tipoSesion);
                        } else {
                            $ingreso = $cliente->getIngresoPorId($datos['ingreso_id']);
                            $tipoSesion = $ingreso->getTipoSesion();
                            $sesion->setTipoSesion($tipoSesion);
                        }
                        //var_dump($sesion);exit;
                        if($this->sesionDao->guardar($sesion)){
                            if($primerSesion){
                                $this->_helper->redirector('registrar','cliente', 'clientes' );
                            } elseif ($editarSesionBool) {
                                 //echo 'entro en editar sesion';
                                $this->_helper->redirector('veringresoscliente','cliente', 'clientes' ,array('cliente_id'=>$cliente->getId()));
                            }else{
                               
                               $this->_helper->redirector('veringresoscliente','cliente', 'clientes' ,array('cliente_id'=>$cliente->getId()));
    //                        echo 'exito';
    //                        //$params = 
    //                        if(!$cliente->getIngresosHistoricos()){
    //                            echo'holawwww';
    //                            $this->_helper->redirector('detalleingresoactivo','cliente', 'clientes' ,array('cliente_id'=>$cliente->getId()));
    //                        }

                           // $this->_redirect($this->baseUrl('clientes/busqueda.phtml'));
                        }
                        //var_dump($sesion);exit;

                        } else {
                            echo 'no se guardo la sesion';
                        }
                       break;
                       
                case 'borrarsesion':
                    //var_dump($datos);
                    //echo $datos['borrarsesion_id'].'sesion id';
                    $sesion = $this->sesionDao->obtenerPorId($datos['borrarsesion_id']);
                    $ingreso = $this->ingresoDao->obtenerPorId($datos['ingreso_id']);

                    $nuevaDiferencia = $ingreso->getDif_monto() - $sesion->getDif_monto();
                    $ingreso->setDif_monto($nuevaDiferencia);
                    if(!$this->ingresoDao->guardar($ingreso)){
                        echo 'error al modificar ingreso en borrarsesion';
                    }

                    if ($this->sesionDao->eliminar($sesion)){
                        $this->_helper->redirector('detalleingresoactivo','cliente', 'clientes' ,array('cliente_id'=>$datos['cliente_id'],'ingreso_id'=>$datos['ingreso_id']));
                    }
                break;
                
                case 'sesionvencida':
                        $cliente = $this->clienteDao->obtenerPorId($datos['cliente_id']);
                        $ingreso = $cliente->getIngresoPorId($datos['ingreso_id']);
                        if($ingreso->getCantidad() > count($ingreso->getSesiones())){
                            /****************Datos de las sesiones************************/
                            $sesion->setIngreso($cliente->getIngresoPorId($datos['ingreso_id']));
                            $sesion->setCliente($cliente);
                            $sesion->setTasa(0);
                            $sesion->setActivo(0);/*******coloco valor 0 para indicar que esa sesion fue vencida**********/
                            $sesion->setDif_monto(0);
                            
                            /********Fecha actual**********/
                            $fechaSesion = new DateTime();
                            $sesion->setFechaSesion($fechaSesion);
                            /**********Usuario Activo************/
                            $usuario = new Doctrine_Model_Entities_Usuario();
                            $usuario = $this->usuarioDao->obtenerPorId(1); 
                            $sesion->setUsuario($usuario);
                            $sesion->setTipoSesion($ingreso->getTipoSesion());
                            
                            if($this->sesionDao->guardar($sesion)){
                                $this->_helper->redirector('veringresoscliente','cliente', 'clientes' ,array('cliente_id'=>$cliente->getId()));
                            }
                            
                        } else {
                            echo 'no se puede poner como vencida la sesion ya qu estan todas realizadas'; 
                            $this->_helper->redirector('veringresoscliente','cliente', 'clientes' ,array('cliente_id'=>$cliente->getId()));
                        }
                     
                            //var_dump($sesion); exit;
                    break;
                       
                    
            }

    }
    
    public function busquedaAction(){
        $clientes = array();
        if ($this->getRequest()->isPost()){
            $dni = $this->getRequest()->getParam("txt_dni", null);
            $apellido = $this->getRequest()->getParam("txt_apellido", null);
            $estado_ingreso = $this->getRequest()->getParam("estado_ingreso", null);
             if(!empty($dni) || !empty($apellido)){
                //$datos = $this->getRequest()->getParams();
                //var_dump($datos);
                $this->view->marca=true;
                $conSesion = array();
                $sinSesion = array();
                if(!empty($dni)){
                    //$clientes = new Doctrine_Model_Entities_Cliente();
                    $clientes = $this->clienteDao->obtenerPorNumeroyTipoDeDocumento($dni, 1);
                    //$ingresos = $clientes->getIngreso();

                    switch ($estado_ingreso) {
                        case 0:
                            $this->view->clientes = $clientes;
                            $this->view->activos = 0;
                            break;

                        case 1:
                            $conIngresoActivo = array();
                            foreach ($clientes as $cliente) {
                                if ($cliente->getIngresosActivos()) {
                                    $conIngresoActivo[] = $cliente;
                                }
                            }
                            $this->view->clientes = $conIngresoActivo;
                            $this->view->activos = 1;
                            break;

                         case 2:
                            $conIngresoHistorico = array();
                            foreach ($clientes as $cliente) {
                                if ($cliente->getIngresosHistoricos()) {
                                    $conIngresoHistorico[]=$cliente;
                                }                          
                            }
                            $this->view->clientes = $conIngresoHistorico;
                            $this->view->activos = 2;
                            break;
                    }
                } elseif (!empty($apellido)) {
                    //$clienteDao = new Doctrine_Model_ClienteDao();
                    //var_dump($this->clienteDao->buscarPorApellidoyNombre($nom, ''));
                    //$ingreso = new Doctrine_Model_Entities_Ingreso();
                    $clientes = $this->clienteDao->buscarPorApellidoyNombre($apellido, '');
                    //var_dump($clientes);

                    switch ($estado_ingreso) {
                        case 0:
                            $this->view->clientes = $clientes;
                            $this->view->activos = 0;
                            break;

                        case 1:
                            $conIngresoActivo = array();
                            foreach ($clientes as $cliente) {
                                if ($cliente->getIngresosActivos()) {
                                    $conIngresoActivo[] = $cliente;
                                }
                            }
                            $this->view->clientes = $conIngresoActivo;
                            $this->view->activos = 1;
                            break;

                         case 2:
                            $conIngresoHistorico = array();
                            foreach ($clientes as $cliente) {
                                if ($cliente->getIngresosHistoricos()) {
                                    $conIngresoHistorico[]=$cliente;
                                }                          
                            }
                            $this->view->clientes = $conIngresoHistorico;
                            $this->view->activos = 2;
                            break;
                    }
                }
             }else{
//                 $datos = $this->getRequest()->getParams();
//                 var_dump($datos);
                 //$clienteDao = new Doctrine_Model_ClienteDao();
                 $this->view->marca=true;
                 $clientes = $this->clienteDao->obtenerTodos();
                 
                 switch ($estado_ingreso) {
                        case 0:
                            $this->view->clientes = $clientes;
                            $this->view->activos = 0;
                            break;

                        case 1:
                            $conIngresoActivo = array();
                            foreach ($clientes as $cliente) {
                                if ($cliente->getIngresosActivos()) {
                                    $conIngresoActivo[] = $cliente;
                                }
                            }
                            $this->view->clientes = $conIngresoActivo;
                            $this->view->activos = 1;
                            break;

                         case 2:
                            $conIngresoHistorico = array();
                            foreach ($clientes as $cliente) {
                                if ($cliente->getIngresosHistoricos()) {
                                    $conIngresoHistorico[]=$cliente;
                                }                          
                            }
                            $this->view->clientes = $conIngresoHistorico;
                            $this->view->activos = 2;
                            break;
                    }
             }
        }
        if ($this->getRequest()->isPost()) {
            $datos = $this->getRequest()->getParams();
             //var_dump($datos);
        }

        
    }
    function editaringresoAction(){
//        $this->_helper->layout()->disableLayout();
//        $this->_helper->layout()->setLayout('layout_login');

        $datos = $this->getRequest()->getParams();
        $this->view->cliente_id = $datos['cliente_id'];
        $this->view->cliente = $this->clienteDao->obtenerPorId($datos['cliente_id']);
        $this->view->tiposSesiones = $this->tipoSesionDao->obtenerTodos();
        $this->view->ingreso = $this->ingresoDao->obtenerPorId($datos['ingreso_id']);
    }
    
    public function tomarsesionAction(){
//        echo 'hola';
       //var_dump($this->getRequest()->getParam("ingreso"));
       
        $this->view->ingresos = $this->ingresoDao->obtenerPorId($this->getRequest()->getParam("ingreso", 0));
    }
    
     public function veringresosclienteAction(){
//        echo 'hola';
       $this->view->tiposDocumento = $this->tipoDocumentoDao->obtenerTodos();
       $this->view->tiposSesiones = $this->tipoSesionDao->obtenerTodos();
       //var_dump($datos = $this->getRequest()->getParams());
       $datos = $this->getRequest()->getParams();
       //$clienteDao = new Doctrine_Model_ClienteDao();
       $cliente = $this->clienteDao->obtenerPorId($datos['cliente_id']);
//       $ingresosHistoricos = $cliente->getIngresosHistoricos();
//       $ingresoActivos = $cliente->getIngresosActivos();
       //var_dump($ingresoActivos[0]->getCantidad());
       //var_dump($ingresosHistoricos);
       $totalIngresos = $this->ingresoDao->obtenerIngresosPorCliente($cliente->getId());
       $ingresosActivos = array();
       $ingresosHistoricos = array();
       foreach ($totalIngresos as $ingreso){
            if($ingreso->getCantidad() > count($ingreso->getSesiones())){
                $ingresosActivos[]= $ingreso;
            } else {
                $ingresosHistoricos[]= $ingreso;
            }
       }
       
        $ingresosConFechasActual = array();
        $fechaActual = new DateTime();
        //$ingreso = new Doctrine_Model_Entities_Ingreso();
        //$sesion = new Doctrine_Model_Entities_Sesiones();
        foreach ($ingresosActivos as $ingreso) {
            $arr = array("ingreso"=>null,"valor"=>0);
            $arr["ingreso"]=$ingreso;
            $sesiones = $ingreso->getSesiones();
            foreach ($sesiones as $sesion) {
                if($sesion->getFechaSesion()->format('d/m/Y') == $fechaActual->format('d/m/Y')){             
                $arr["valor"]=1;
            }
            }
            $ingresosConFechasActual[]=$arr;
        }
        $this->view->cliente = $cliente;
        $this->view->activos = $ingresosConFechasActual;
        $this->view->historicos = $ingresosHistoricos; //$cliente->getIngresosHistoricos();
        //$this->view->ingresos = $this->ingresoDao->obtenerPorId($this->getRequest()->getParam("ingreso", 0));
    }
    
    function detalleingresohistoricoAction(){
        //$this->getLayout()->setDisabledLayout();
        $this->_helper->layout()->disableLayout();
        $this->_helper->layout()->setLayout('layout_login');
        
        //$datos = $this->_getParams();
        //var_dump($datos);exit;
        $datos = $this->getRequest()->getParams();
        $cliente_id  = $datos['cliente_id'];
        //$clienteDao = new Doctrine_Model_ClienteDao();
        //$cliente = new Doctrine_Model_Entities_Cliente();
        $cliente = $this->clienteDao->obtenerPorId($cliente_id);
        
        $this->view->cliente = $cliente;
        $this->view->historicos = $cliente->getIngresosHistoricos();
        
//        $datos = $this->getRequest()->getParams();
//        var_dump($datos);
    }
    
    function detalleingresoactivoAction(){
        //$this->getLayout()->setDisabledLayout();
//        $this->_helper->layout()->disableLayout();
//        $this->_helper->layout()->setLayout('layout_login');
        $datos = $this->getRequest()->getParams();
        //var_dump($datos); //exit;
        
        $cliente_id  = $datos['cliente_id'];
        $cliente = $this->clienteDao->obtenerPorId($cliente_id);
        //$cliente = new Doctrine_Model_Entities_Cliente();
        
        $ingresosConFechasActual = array();
        $fechaActual = new DateTime();
        //$ingreso = new Doctrine_Model_Entities_Ingreso();
        //$sesion = new Doctrine_Model_Entities_Sesiones();
        foreach ($cliente->getIngresosActivos() as $ingreso) {
            $arr = array("ingreso"=>null,"valor"=>0);
            $arr["ingreso"]=$ingreso;
            $sesiones = $ingreso->getSesiones();
            foreach ($sesiones as $sesion) {
                if($sesion->getFechaSesion()->format('d/m/Y') == $fechaActual->format('d/m/Y')){             
                $arr["valor"]=1;
            }
            }
            $ingresosConFechasActual[]=$arr;
        }
        $this->view->cliente = $cliente;
        $this->view->ingresosConFechasActual = $ingresosConFechasActual;
        $this->view->sesiones = $this->sesionDao->obtenerOrdenados($datos['ingreso_id']); //$cliente->getIngresoPorId($datos['ingreso_id'])->getSesiones();
        $this->view->ingreso = $cliente->getIngresoPorId($datos['ingreso_id']);
        $this->view->historico = $datos['historico'];
    }
    
   
    function editarsesionAction(){
         $datos = $this->getRequest()->getParams();
         $cliente_id = $datos['cliente_id'];
         
         $this->view->cliente_id = $datos['cliente_id'];
         $this->view->ingreso_id = $datos['ingreso_id'];
         $this->view->ingreso = $this->ingresoDao->obtenerPorId($datos['ingreso_id']);
         $this->view->tiposSesiones = $this->tipoSesionDao->obtenerTodos();
         $this->view->cliente = $this->clienteDao->obtenerPorId($cliente_id);
    }


    function borraringresoAction(){
        $this->_helper->layout()->disableLayout();
        $this->_helper->layout()->setLayout('layout_login');
        
        $datos = $this->getRequest()->getParams();
        
        $unIngreso = $this->ingresoDao->obtenerPorId($datos['ingreso_id']);
        
        if( $this->ingresoDao->eliminar($unIngreso)){
            echo'exito';
        }
        
        $params = array('cliente_id'=>$datos['cliente_id'],'ingreso_id'=>$datos['ingreso_id']);
        $this->_helper->redirector('veringresoscliente','cliente', 'clientes', $params );
        
        
        //$this->view->tiposSesiones = $this->tipoSesionDao->obtenerTodos();

    }
    function verificarsesionAction(){
        $this->_helper->layout()->disableLayout();
        //$this->_helper->layout()->setLayout('layout_login');
        //$datos = $this->getRequest()->getParams();

        if ($this->getRequest()->isPost()){
            echo "{\"verificar\" : \"1\"}";
        } else {
            echo "{\"verificar\" : \"0\"}";
        }
        
    }
    
    
    function detalleclienteAction(){
//        $this->_helper->layout()->disableLayout();
//        $this->_helper->layout()->setLayout('layout_login');
        
        $this->view->tiposDocumento = $this->tipoDocumentoDao->obtenerTodos();
        $this->view->tiposSesiones = $this->tipoSesionDao->obtenerTodos();
        
        $datos = $this->getRequest()->getParams();
//      var_dump($datos);
        $this->view->cliente = $this->clienteDao->obtenerPorId( $datos['cliente_id']);
    }
    
    function editarclienteAction(){
        $this->_helper->layout()->disableLayout();
        $this->_helper->layout()->setLayout('layout_login');
        
        $datos = $this->getRequest()->getParams();
        //var_dump($datos);
        //$accion = $datos['accion'] ;
        $accion = trim($datos['accion']);
        
        if ($accion == 'Guardar' ) {
            /*****************Cliente el cual va ser editado*****************/
                    $clienteNuevo = $this->clienteDao->obtenerPorNumeroyTipoDeDocumento($datos['txt_dni'], $datos['tipo_documento']);
                    
                    if (!count($clienteNuevo)){    
                        $clienteNuevo = new Doctrine_Model_Entities_Cliente();
                    } else {
                        $clienteNuevo = $clienteNuevo[0];
                    }
                    
                    /*************Datos del cliente***************/
                    $clienteNuevo->setApellido($datos['text_apellido']);
                    $clienteNuevo->setNombre($datos['text_nombre']);
                    $clienteNuevo->setNroDocumento($datos['txt_dni']);

                    $tipoDoc =  $this->referenciaDao->obtenerPorId("Doctrine_Model_Entities_TipoDocumento", 1);
                    $clienteNuevo->setTipoDocumento($tipoDoc);

                    $clienteNuevo->setSexo($datos['sexo']);

                    $usuario = new Doctrine_Model_Entities_Usuario();
                    $usuario = $this->usuarioDao->obtenerPorId(1);  
                    $clienteNuevo->setUsuario($usuario);

                    $clienteNuevo->setMail($datos['text_mail']);
                    $clienteNuevo->setTelefonoFijo($datos['text_telefono']);
                    $clienteNuevo->setCelular($datos['text_celular']);
                    $clienteNuevo->setZona($datos['zona']);

                    if($datos['fecha_nacimiento'] != ''){
                        $fechaNacimiento = DateTime::createFromFormat('d/m/Y', $datos['fecha_nacimiento']);
                        //var_dump($fechaNacimiento);
                        $clienteNuevo->setFechaNacimiento($fechaNacimiento);
                    }
                    if ($this->clienteDao->guardar($clienteNuevo)) {
                       $this->_helper->redirector('detallecliente','cliente', 'clientes',array('cliente_id'=>$clienteNuevo->getId()));             
                    } else {
                        echo 'no exito';
                    }
        } elseif ($accion == 'Borrar') {
                
                $clienteABorrar = $this->clienteDao->obtenerPorNumeroyTipoDeDocumento($datos['txt_dni'], $datos['tipo_documento']);
                if ($this->clienteDao->eliminar($clienteABorrar[0])) {
                        $this->_helper->redirector('busqueda','cliente', 'clientes' );
                    } else {echo "no exito";}
        }else{
            echo 'no hay accion';
        }
    }
    
    function borrarclienteAction(){
        $this->_helper->layout()->disableLayout();
        $this->_helper->layout()->setLayout('layout_login');
        
         
        
    }

}